<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询（media queries）功能 -->
    <!-- 警告：通过 file:// 协议（就是直接将 html 页面拖拽到浏览器中）访问页面时 Respond.js 不起作用 -->
    <!--[if lt IE 9]>
      <script src="https://cdn.jsdelivr.cn/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
      <script src="https://cdn.jsdelivr.cn/npm/respond.js@1.4.2/dest/respond.min.js"></script>
    <![endif]-->
    <link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css">
    <style>
        [class^="col"] {
            height: 50px;
            border: 1px solid black;
        }

        .container .row:nth-child(2n+1) {
            background-color: pink;
        }
        .container .row:nth-child(2n) {
            background-color: skyblue;
        }
    </style>
</head>

<body>
    <!-- 
        2.1 Bootstrap简介

            Bootstrap来自Twitter(推特），是目前最受欢迎的前端框架。Bootstrap是基于HTML、CSS和JAVASCRIPT的，
            它简洁灵活，使得Web开发更加快捷。
            
            中文官网: http://www.bootcss.com/
            官网: http:/lgetbootstrap.com/
            推荐使用:http://bootstrap.css88.com/

            框架∶顾名思义就是一套架构，它有一套比较完整的网页功能解决方案，而且控制权在框架本身，有预制样式库、
            组件和插件。使用者要按照框架所规定的某种规范进行开发。


            1.优点

                标准化的html+css编码规范

                提供了一套简洁、直观、强悍的组件
                
                有自己的生态圈，不断的更新迭代
            
                让开发更简单，提高了开发的效率

            2.版本

                2.x.x∶停止维护,兼容性好,代码不够简洁，功能不够完善。
                3.x.x︰目前使用最多,稳定,但是放弃了IE6-IE7。对IE8支持但是界面效果不好,偏向用于开发响应式布局、移动设备优先的WEB项目。
                4.x.x:最新版，目前还不是很流行
     -->
    <button type="button" class="btn btn-success">（成功）Success</button>

    <!-- 
        2.3布局容器
            Bootstrap需要为页面内容和栅格系统包裹一个.container容器，Bootstarp预先定义好了这个类，叫.container它提供了两个作此用处的类。
            
            1.container类

                响应式布局的容器固定宽度
                大屏(>=1200px）宽度定为1170px
                中屏( >=992px)宽度定为970px
                小屏( >=768px)宽度定为750px
                超小屏(100%)

            2.container-fluid类

                流式布局容器百分百宽度
                占据全部视口( viewport )的容器。
                适合于单独做移动端开发

      -->

    <!-- 
        3.1 栅格系统简介

            栅格系统英文为“gridsystems”,也有人翻译为“网格系统”，它是指将页面布局划分为等宽的列，然后通过列数的定义来模块化页面布局。

            Bootstrap提供了一套响应式、移动设备优先的流式栅格系统，随着屏幕或视口(viewport )尺寸的增加系统会自动分为最多12列。
            
            Bootstrap里面container宽度是固定的，但是不同屏幕下，container的宽度不同，我们再把container划分为12等份

       -->

    <!-- 
        3.2栅格选项参数
            栅格系统用于通过一系列的行( row )与列 ( column )的组合来创建页面布局，你的内容就可以放入这些创建好的布局中

                                超小屏幕(手机)      小屏设备(平板)     中等屏幕(桌面显示器)      宽屏设备(大桌面显示器)
                                 <768px            >=768px            >=992px                 >=1200px
            .container最大宽度   自动(100%)         750px              970px                   1170px
            类前缀               .col-xs-          .col-sm-           .col-md-                .col-lg-
            列( column )数                                  12

            - 行( row )必须放到container布局容器里面
            - 我们实现列的平均划分需要给列添加类前缀
            - xs-extra small:超小; sm-small :小; md-medium :中等;lg-large :大;
            - 列( column )大于12，多余的“列( column )”所在的元素将被作为一个整体另起一行排列每一列默认有左右15像素的padding
            - 可以同时为一列指定多个设备的类名，以便划分不同份数例如class="col-md-4 col-sm-6"

        -->
    <div class="container">
        <h3>栅格系统简介</h3>
        <div class="row">
            <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">1</div>
            <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">2</div>
            <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">3</div>
            <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">4</div>
        </div>
        <!-- 如果孩子的分数相加等于12，则孩子能占满整个container的宽度 -->
        <div class="row">
            <div class="col-lg-6">1</div>
            <div class="col-lg-2">2</div>
            <div class="col-lg-2">3</div>
            <div class="col-lg-2">4</div>
        </div>
        <!-- 如果孩子的分数相加小于12，则孩子不能占满整个container的宽度，会有空白 -->
        <div class="row">
            <div class="col-lg-6">1</div>
            <div class="col-lg-2">2</div>
            <div class="col-lg-2">3</div>
            <div class="col-lg-1">4</div>
        </div>
        <!-- 如果孩子的分数相加大于12，则最后的孩子会换行显示 -->
        <div class="row">
            <div class="col-lg-6">1</div>
            <div class="col-lg-2">2</div>
            <div class="col-lg-2">3</div>
            <div class="col-lg-3">4</div>
        </div>
    </div>

    <br>
    <br>

    <!-- 
        3.3 列嵌套

        栅格系统内置的栅格系统将内容再次嵌套。简单理解就是一个列内再分成若干份小列。
        我们可以通过添加一个新的.row元素和一系列.col-sm-*元素到已经存在的.col-sm-*元素内。

        我们列嵌套最好加1个行row这样可以取消父元素的padding值而且高度自动和父级一样高


     -->
     <div class="container">
        <h3>列嵌套</h3>
        <div class="row">
            <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">
                <!-- 我们列嵌套最好加一行row，这样可以取消父元素的padding值，而且高度自动和父级一样高 -->
                <div class="row">
                    <div class="col-sm-4">1</div>
                    <div class="col-sm-8">2</div>
                </div>
            </div>
            <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">
                <!-- 这一行没用加row，两边就会有padding -->
                <div class="col-sm-6">3</div>
                <div class="col-sm-6">4</div>
            </div>
            <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">3</div>
            <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">4</div>
        </div>
     </div>

     <!-- 

        3.4 列偏移

            使用.col-md-offset-*类可以将列向右侧偏移。这些类实际是通过使用*选择器为当前元素增加了左侧的边距( margin ) .

      -->
      <br>
      <br>
      <br>

      <div class="container">
        <h3>列偏移</h3>
        <div class="row">
            <div class="col-md-2">左</div>
            <!-- 偏移的份数就是12减去两个盒子的份数 -->
            <div class="col-md-2 col-md-offset-8">右</div>
        </div>

        <div class="row">
            <!-- 让一个盒子居中 -->
            <div class="col-md-8 col-md-offset-2"></div>
        </div>
      </div>

      <!-- 
        3.5 列排序

            通过使用.col-md-push-*和.col-md-pull-*类就可以很容易的改变列( column )的顺序。

       -->
       <br>
       <br>
       <br>

       <div class="container">
        <h3>列排序</h3>
        <div class="row">
            <div class="col-md-6 col-md-push-6">左盒子</div>
            <div class="col-md-6 col-md-pull-6">右盒子</div>
        </div>
        <div class="row">
            <div class="col-md-4 col-md-push-8">左盒子</div>
            <div class="col-md-8 col-md-pull-4">右盒子</div>
        </div>
       </div>

       <!-- 
        3.6响应式工具

        为了加快对移动设备友好的页面开发工作，利用媒体查询功能，并使用这些工具类可以方便的针对不同设备展示或隐藏页面内容。

        类名             超小屏        小屏        中屏        大屏
        .hidden-xs        隐藏        可见        可见        可见
        .hidden-sm        可见        隐藏        可见        可见
        .hidden-md        可见        可见        隐藏        可见
        .hidden-lg        可见        可见        可见        隐藏

        与之相反的，是visible-xs visible-sm visible-md visible-lg是显示某个页面内容


        -->
        <br>
        <br>
        <br>

        <div class="container">
            <h3>响应式工具</h3>
            <div class="row">
                <div class="col-xs-3">
                    <!-- visible-lg会让元素在大屏显示 -->
                    <span class="visible-lg">我会在大屏显示</span>
                </div>
                <div class="col-xs-3">2</div>
                <!--  hidden-md hidden-xs的意思是再中等屏幕或者在超小屏幕都隐藏 -->
                <div class="col-xs-3 hidden-md hidden-xs">3</div>
                <div class="col-xs-3">4</div>
            </div>
        </div>
</body>

</html>